package cn.iocoder.yudao.module.crossborder.logistics.enums;

import cn.iocoder.yudao.framework.common.exception.ErrorCode;

/**
 * CrossBorder Logistics 错误码枚举类
 *
 * crossborder logistics 系统，使用 1-024-000-000 段
 */
public interface ErrorCodeConstants {

    // ========== 物流管理相关 1-024-001-000 ============
    ErrorCode LOGISTICS_NOT_EXISTS = new ErrorCode(1_024_001_000, "物流记录不存在");
    ErrorCode LOGISTICS_ALREADY_EXISTS = new ErrorCode(1_024_001_001, "物流记录已存在");
    ErrorCode LOGISTICS_STATUS_INVALID = new ErrorCode(1_024_001_002, "物流状态无效");
    ErrorCode LOGISTICS_PROVIDER_INVALID = new ErrorCode(1_024_001_003, "物流服务商无效");

    // ========== 运输管理相关 1-024-002-000 ============
    ErrorCode TRANSPORT_NOT_EXISTS = new ErrorCode(1_024_002_000, "运输记录不存在");
    ErrorCode TRANSPORT_STATUS_INVALID = new ErrorCode(1_024_002_001, "运输状态无效");
    ErrorCode TRANSPORT_CAPACITY_EXCEEDED = new ErrorCode(1_024_002_002, "运输容量超限");
    ErrorCode TRANSPORT_ROUTE_INVALID = new ErrorCode(1_024_002_003, "运输路线无效");

    // ========== 配送管理相关 1-024-003-000 ============
    ErrorCode DELIVERY_NOT_EXISTS = new ErrorCode(1_024_003_000, "配送记录不存在");
    ErrorCode DELIVERY_STATUS_INVALID = new ErrorCode(1_024_003_001, "配送状态无效");
    ErrorCode DELIVERY_ADDRESS_INVALID = new ErrorCode(1_024_003_002, "配送地址无效");
    ErrorCode DELIVERY_TIME_INVALID = new ErrorCode(1_024_003_003, "配送时间无效");

    // ========== 物流跟踪相关 1-024-004-000 ============
    ErrorCode TRACKING_NOT_EXISTS = new ErrorCode(1_024_004_000, "跟踪记录不存在");
    ErrorCode TRACKING_NUMBER_INVALID = new ErrorCode(1_024_004_001, "跟踪号无效");
    ErrorCode TRACKING_UPDATE_FAILED = new ErrorCode(1_024_004_002, "跟踪信息更新失败");
    ErrorCode TRACKING_PROVIDER_ERROR = new ErrorCode(1_024_004_003, "物流商跟踪接口错误");

    // ========== 运费计算相关 1-024-005-000 ============
    ErrorCode FREIGHT_CALCULATION_ERROR = new ErrorCode(1_024_005_000, "运费计算错误");
    ErrorCode FREIGHT_RULE_NOT_EXISTS = new ErrorCode(1_024_005_001, "运费规则不存在");
    ErrorCode FREIGHT_WEIGHT_INVALID = new ErrorCode(1_024_005_002, "货物重量无效");
    ErrorCode FREIGHT_DISTANCE_INVALID = new ErrorCode(1_024_005_003, "运输距离无效");

    // ========== 物流服务商相关 1-024-006-000 ============
    ErrorCode PROVIDER_NOT_EXISTS = new ErrorCode(1_024_006_000, "物流服务商不存在");
    ErrorCode PROVIDER_STATUS_INVALID = new ErrorCode(1_024_006_001, "物流服务商状态无效");
    ErrorCode PROVIDER_API_ERROR = new ErrorCode(1_024_006_002, "物流服务商API错误");
    ErrorCode PROVIDER_CONFIG_INVALID = new ErrorCode(1_024_006_003, "物流服务商配置无效");

}
